查看原文
其他

一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目!

TJ TJ君 2023-02-13

大家好,我是TJ

一个励志推荐10000款开源项目与工具的程序员

大家好,我是TJ

最近ChatGPT很多,想到之前收藏的一个对话机器人开源项目,趁周末拿出来分享给正在研究这部分实现的读者,该项目叫wukong-robot

wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,目的是让中国的 Maker 和 Hacker 们也能快速打造个性化的智能音箱。

wukong-robot 还可能是第一个开源的支持脑机唤醒的智能音箱。


特性

  • 模块化。功能插件、语音识别、语音合成、对话机器人都做到了高度模块化,第三方插件单独维护,方便继承和开发自己的插件。

  • 中文支持。集成百度、科大讯飞、阿里、腾讯等多家中文语音识别和语音合成技术,且可以继续扩展。

  • 对话机器人支持。支持基于 AnyQ 的本地对话机器人,并支持接入图灵机器人、OpenAI GPT3 等在线对话机器人。

  • 全局监听,离线唤醒。支持 Porcupine 和 snowboy 两套离线语音指令唤醒引擎,并支持 Muse 脑机唤醒 以及行空板摇一摇唤醒等其他唤醒方式。

  • 灵活可配置。支持定制机器人名字,支持选择语音识别和合成的插件。

  • 智能家居。支持和 mqtt、HomeAssistant 等智能家居协议联动,支持语音控制智能家电。

  • 后台配套支持。提供配套后台,可实现远程操控、修改配置和日志查看等功能。

  • 开放API。可利用后端开放的API,实现更丰富的功能。

  • 安装简单,支持更多平台。相比 dingdang-robot ,舍弃了 PocketSphinx 的离线唤醒方案,安装变得更加简单,代码量更少,更易于维护并且能在 Mac 以及更多 Linux 系统中运行。

工作机制


wukong-robot 的工作机制如下:

  1. wukong-robot 被唤醒后,用户的语音指令先经过 ASR 引擎进行 ASR 识别成文本;

  2. 之后,wukong-robot 会对识别到的文本进行语义理解(NLU),得到解析结果;

  3. 轮询每个可用插件,进行技能匹配,交给适合处理该指令的技能插件去处理。

  4. 插件处理过程中,还可以根据需要使用 TTS 引擎合成成语音,播放给用户。

在第 3 步中,插件的轮询机制如下:

  1. 在初始化阶段,依次扫描 plugins 目录、$HOME/.wukong/contrib 目录和 $HOME/.wukong/custom 目录下的可用插件。可用插件的判定标准为:

  • 包含一个继承了 AbstractPlugin 基类的 Plugin 类;

  • 在配置文件中没有将这个插件的 enable 设为 false

  1. 在扫描过程中,如果存在插件设置了 PRIORITY 属性,则对其优先级进行重排。默认都为 0,PRIORITY 值设得越大,则优先级越高。

  2. 在轮询过程中,wukong-robot 会根据优先级逐个执行插件的 isValid() 方法,如果值为 True,则调用该插件的 handle() 方法进入处理。


功能演示

如果您对项目该兴趣,可以通过下方地址直达开源项目或官方网站

项目地址:https://github.com/wzpan/wukong-robot/

官方网站:https://wukong.hahack.com/

在官方文档中有对应的一下Demo视频,可以帮助您快速了解该项目的能力,看是否是你正在研究的内容。


往期推荐


点击下方卡片,关注公众号“TJ君

每天了解一个牛x、好用、有趣的东东

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存